'use strict';

/**
 * 文件用途说明 : 聊天室封装
 * 做一个简单的封装即可，客户端实现很简单
 *
 * 项目名称 : nodejs-war
 * 作者姓名 : crixusshen
 * 创建日期 : 16/2/14
 * 修改日期 : 16/2/14
 * 版权所有 : 东方证券股份有限公司
 **/
var Chat = function (socket) {
    this.socket = socket;
};

/**
 * 发送聊天消息
 * @param room      房间
 * @param text      聊天消息
 */
Chat.prototype.sendMessage = function (room, text) {
    var message = {
        room: room,
        text: text
    };
    this.socket.emit('message', message);
};

/**
 * 变更房间
 * @param room      房间
 */
Chat.prototype.changeRoom = function (room) {
    this.socket.emit('join', {
        newRoom: room
    });
};

/**
 * Chat-Cli 简易封装
 * @param command   命令（目前只支持join/nick）
 * join:创建或加入一个房间
 * nick:修改昵称
 */
Chat.prototype.processCommand = function (command) {
    var words = command.split(' ');
    // 从第一个单词开始解析命令
    var command = words[0].substring(1, words[0].length).toLowerCase();
    var message = false;

    switch(command){
        case 'join':
            words.shift();
            var room = words.join(' ');
            this.changeRoom(room);
            break;
        case 'nick':
            words.shift();
            var name = words.join(' ');
            this.socket.emit('nameAttempt', name);
            break;
        default:
            message = 'Unrecognized command.';
            break;
    }
    return message;
};